Bienvenido a la Lección 7, donde presentamos Aprendizaje por Transferencia. Esta técnica consiste en reutilizar un modelo de aprendizaje profundo que ya ha sido entrenado con un conjunto de datos masivo y general (como ImageNet) y adaptarlo para resolver una nueva tarea específica (como nuestro desafío FoodVision). Es esencial para alcanzar resultados de vanguardia de manera eficiente, especialmente cuando los conjuntos de datos etiquetados son limitados.
1. El Poder de los Pesos Preentrenados
Las redes neuronales profundas aprenden características de forma jerárquica. Las capas inferiores aprenden conceptos fundamentales (bordes, esquinas, texturas), mientras que las capas más profundas combinan estas características en conceptos complejos (ojos, ruedas, objetos específicos). La clave está en que las características fundamentales aprendidas al principio son universalmente aplicables en la mayoría de los dominios visuales.
Componentes del Aprendizaje por Transferencia
- Tarea de Origen: Entrenamiento con 14 millones de imágenes y 1000 categorías (por ejemplo, ImageNet).
- Tarea Objetivo: Adaptar los pesos para clasificar un conjunto de datos mucho más pequeño (por ejemplo, nuestras clases específicas de FoodVision).
- Componente Aprovechado: La gran mayoría de los parámetros de la red—las capas de extracción de características—se reutilizan directamente.
Ejecuta el código para inspeccionar tensores activos
El tamaño de características de entrada debe coincidir con la salida de la capa base congelada.
Tamaño: 512.
El tamaño de salida de 512 es la entrada, y el recuento de clases 7 es la salida.
Código:
new_layer = torch.nn.Linear(512, 7)El tamaño de características de salida debe coincidir con el número de clases objetivo.
Tamaño: 7.